Using a memory card to identify the location of a server

ABSTRACT

A server system includes a server rack having a plurality of slots, a plurality of servers and a plurality of memory cards. Each server is positioned on a respective slot of the server rack. Each memory card is programmed with information relating to a location of the respective server at the server rack. Each server comprises a controller and an interface coupled to the controller. The respective memory card is brought into an electrical connection with the interface to transmit the information relating to the corresponding location of the respective server to the controller.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. § 119 to Chinese PatentApplication No. 201710646641.8 filed Aug. 1, 2017, the entire text ofwhich is specifically incorporated by reference herein.

BACKGROUND

The present disclosure relates to a systems and devices for identifyingthe location of a server.

BACKGROUND OF THE RELATED ART

As demands for server clusters and related server computing resourcessuch as cloud services increase, it is desirable to accurately andquickly identify a server in a network environment. Existing serveridentification requires a user, for instance an administrator or otherservice personnel, to manually mount a physical asset tag or an e-tag toeach server device based on their particular location on a server rack.The user will then manually register the server's serial number andlocation on both a server management system which the administrator usesto manage the server cluster, and on a baseboard management controllerwhich is the management system local to the individual server. AnInternet Protocol (IP) address must then be manually configured for afirst access of the server from the server management system. Thismanner of server identification configuration is labor intensive andoften prone to human error, especially when the server cluster includesnumerous servers or includes servers operated in multiple locations.Server identification may also be a problem during server replacement,where there is a high likelihood of committing a server identificationerror.

BRIEF SUMMARY

One embodiment provides a server system comprising a server rackincluding a plurality of slots, a plurality of servers, and a pluralityof memory cards. Each server is positioned at a respective slot withinthe server rack, and each server includes a controller and anexternally-accessible interface coupled to the controller. Each memorycard has a non-volatile storage module storing a location identifierthat uniquely identifies one of the plurality of slots, and each memorycard is operable to communicate through the externally-accessibleinterface of a respective one of the servers to transmit the storedlocation identifier to the controller of the respective server.

Another embodiment provides a server comprising a management controllerand an externally-accessible interface coupled to the managementcontroller, wherein the interface is configured to selectively couplewith a memory card and enable the management controller to receive alocation identifier stored by the memory card.

A further embodiment provides a memory card comprising a storage modulestoring a location identifier that identifies a location within a serverrack, and an interface coupled to the storage module for communicatingwith a server positioned at the identified location within the serverrack. The memory card is operative to communicate, via the interface,with the server positioned at the identified location within the serverrack, and the server is operative to read the location identifier storedby the storage module.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagram of an embodiment of a server system.

FIG. 2 is a diagram of a memory card of the server system of FIG. 1.

FIG. 3 is a diagram of a server of the server system of FIG. 1.

FIG. 4 is a top view of the memory card shown in FIG. 1.

FIG. 5 is a diagram of a server according to another embodiment.

FIG. 6 is a flow chart illustrating an embodiment of a serveridentification method.

DETAILED DESCRIPTION

One embodiment provides a server system comprising a server rackincluding a plurality of slots, a plurality of servers, and a pluralityof memory cards. Each server is positioned at a respective slot withinthe server rack, and each server includes a controller and anexternally-accessible interface coupled to the controller. Each memorycard has a non-volatile storage module storing a location identifierthat uniquely identifies one of the plurality of slots, and each memorycard is operable to communicate through the externally-accessibleinterface of a respective one of the servers to transmit the storedlocation identifier to the controller of the respective server. Thenon-volatile storage module may take various forms, such as anelectrically erasable programmable read-only memory chip.

The interface may include a card reader coupled to the server, whereinthe card reader receives the memory card therein to establishcommunication with the memory card. In one option, the card reader maybe fixedly mounted to the server and may open to a front side of theserver for receiving the memory card. In another option, the interfacemay include a cable connector mounted to the server, such that the cardreader may be detachably connected to the cable connector.

The memory card may further include a wireless communication modulecoupled to the non-volatile storage module to wirelessly transmit thelocation identifier stored on the memory card to the card reader. Onenon-limiting example of a wireless communication module includes anear-field communication chip.

The controller may, in various embodiments, derive an Internet Protocoladdress for the server based on the location identifier of therespective server and a server identifier associated with the server.

Another embodiment provides a server comprising a management controllerand an externally-accessible interface coupled to the managementcontroller, wherein the interface is configured to selectively couplewith a memory card and enable the management controller to receive alocation identifier stored by the memory card.

The externally-accessible interface may include a card reader coupled tothe server, wherein the card reader receives the memory card therein andestablishes communication with the memory card. In one option, the cardreader may be fixedly secured to the server and may open to a front sideof the server for receiving the memory card. In another option, theinterface may include a cable connector mounted to the server, such thatthe card reader may be detachably connected to the cable connector.

A further embodiment provides a memory card comprising a storage modulestoring a location identifier that identifies a location within a serverrack, and an interface coupled to the storage module for communicatingwith a server positioned at the identified location within the serverrack. The memory card is operative to communicate, via the interface,with the server positioned at the identified location within the serverrack, and the server is operative to read the location identifier storedby the storage module.

The interface may include a wireless module, such as a near-fieldcommunication chip, configured to establish wireless communication withthe server. Preferably, any such wireless module may wirelessly transmitthe location identifier to the server. However, the interface mayinclude a plurality of contact pads configured to establish wiredcommunication with the server. In one option, the plurality of contactpads support an inter-integrated circuit (I2C) bus connection with theinterface of the server.

FIG. 1 is a diagram of an embodiment of a server system including aplurality of server racks 110, 120. Each server rack 110, 120 hasmultiple locations, for example in the embodiment shown, in the form ofbays or slots 111, 112 . . . 118 and 121, 122 . . . 128, respectively.The locations provided on each server rack may take other forms to whichthe servers may be received and positioned, for example compartments,chambers, shelves and the like. Each slot is configured to receive aserver, such as the servers 212, 214, 218 and 223 shown in the exampleof FIG. 1. Each rack 110, 120 has a unique rack identifier 110 a, 120 a,represented by one or more characters, digits, symbols or a combinationthereof, for example in the embodiment shown, by an alphabetic character“A”, “B”, and so on. Likewise, each slot has a unique slot identifier111 a, 112 a, etc., corresponding to the physical location of the slotin a particular server rack. For example in the embodiment shown, theunique slot identifier is illustrated as numbers 1, 2, 3 . . . 8,respectively, in each rack.

The server system 100 further includes a plurality of memory cards, forexample memory cards 312, 321, 322, 323, 324, 325, 326, 327 and 328shown in FIG. 1. Each memory card is programmed with information, forexample a location identifier, relating to a location of the respectiveserver at a particular server rack, e.g. the server rack number, theslot number on the server rack, etc. The location identifier is uniqueto a memory card and the corresponding slot within the server system100, which can be determined based on the server rack identifier and theslot identifier. Taking slot 112 of server rack 110 as an example, slot112 is physically located in slot number “2” of server rack “A”,therefore the location identifier of memory card 312 may be determinedas “A2” which is derived from the rack identifier “A” and slotidentifier “2” of this particular slot. Similarly, the locationidentifier of memory card 321 is “B1”, the location identifier of memorycard 322 is “B2”, and so on.

In reference to FIG. 2, the memory card 312 may include a data storagemodule, such as an electrically erasable programmable read-only memory(EEPROM) chip 3122 and a set of contact pads 3124 coupled to the EEPROMchip 3122. Contact pads 3124 may be configured to include fourterminals, such as “pwr”, “scl”, “sda” and “gnd”, respectively,according to an appropriate data communication protocol, such as theInter-Integrated Circuit (I2C) protocol. The location identifier ofmemory card 312, such as “A2”, is programmed and stored in the memorymodule 3122 using a memory card writer (not shown). Alternatively oradditionally, memory card 312 may include a wireless interface 3128,such as Near Field Communication (NFC) module or radiofrequency modulefor data transmission wirelessly. Optionally, the EEPROM chip may besubstituted with some other form of non-volatile memory.

In reference to FIG. 3, the server 212 may include a controller 2122,such as a Baseboard Management Controller (BMC), and an interface 2124coupled to the controller 2122. The interface 2124 may include contactterminals for establishing wired connection with the memory card 312through direct physical contact with the contact pads 3124 shown in FIG.2. Alternatively or additionally, the interface 2124 may includewireless components for establishing a wireless connection with thememory card 213 through the wireless interface 3128 shown in FIG. 2.Upon the server 212 being received by and mounted to slot 112, thememory card 312 may be connected to the controller 2122 via theinterface 2124, and is operable to communicate with the interface 2124,to transmit the information relating to the location of the respectiveserver within the server rack to the controller 2122. The locationidentifier “A2” programmed and stored in the memory card 312 is thenautomatically read by the controller 2122. As such, the informationspecific to the physical location of slot 112, for example the rackidentifier “A” and slot identifier “2”, is transmitted to the controller2122. Accordingly, the physical location of server 212 in the serversystem 100 (see FIG. 1) may be automatically determined by thecontroller 2122. Based on the location identifier, and a serveridentifier such as the serial number of the server, the controller 2122may further determine an IP address e.g. an IPv6 address dedicated tothe server 212 that is mounted to slot 112. For example, the controllermay access the IP address in a lookup table that associates the IPaddress with the location identifier. Alternatively, the controller mayassign an IP address that is based on, or is a function of, the locationidentifier.

Referring again to FIG. 2, the memory card 312 may include a secondwireless module, for example a Near Field Communication (NFC) module3126 with an NFC chip and NFC aerial or antenna coupled to the datastorage module 3122. When the memory card 312 includes a second wirelessmodule, such as module 3126, a user is able to access the informationstored on the memory card 312, by interrogating the memory card 312 viaa corresponding wireless device, such as an NFC reader (now shown in thefigures). The NFC module 3126 may also enable a user to accessinformation stored on the controller 2122 to perform an audit, or tocommunicate with the controller 2122 via a corresponding wirelessdevice.

In FIG. 4, the memory card 312 is shown having an optional writing area3127 provided on its top and/or bottom surface, to enable the display ofvisually identifiable information such as the location of the server,the data room in which the server rack is housed, the rack/slot numberwith which the card corresponds, as well as the card number, etc. Suchinformation may be hand-written or printed directly thereon, or perhapson a sticker, for the easy reference by a user.

In the embodiment shown in FIG. 3, the interface 2124 may include a cardreader receptacle 2124 a mounted directly to the casing or enclosure2129 of the server 212, and electrically connected to controller 2122 bya data cable 2128. The card reader receptacle 2124 a may, withoutlimitation, open to the front side of the server 212, facilitating easyand convenient access by the memory card 312 insertion into andretrieval from the card reader receptacle 2124 a.

In another embodiment, as shown in FIG. 5, the interface 2124 mayinclude a cable connector 2124 b and a card reader 2124 c electricallyconnected to the cable connector 2124 b. Cable connector 2124 b ispreferably mounted directly to the casing of server 212, andelectrically connected to controller 2122 by data cable. When the server212 is mounted to the server rack at the designated slot, the cardreader 2124 c may be connected to the cable connector 2124 b and thememory card may be inserted into the card reader 2124 c, such that thelocation identifier programmed and stored in the memory card 312 can betransmitted to the controller 2122 in order to complete the automaticidentification of the server 212. In this embodiment, the card reader2124 c need not be permanently physically mounted to the server 212 noroccupy space in the enclosure 2129 of the server 212. Optionally, thecard reader 2124 c may be attached to the server rack 110.

As can be appreciated according to the illustrated embodiments above, adata center or server room having the capacity of housing multipleservers may be provided with an equal quantity of memory cards, eachmemory card being programmed with a unique location identifier, on aone-to-one basis, corresponding to a dedicated slot of a specific serverrack. The memory cards may be programmed and stored with a respectivelocation identifier therein on a batch-basis, and provided to the datacenter or server room. Alternatively, one or more memory card may beprogrammed individually and/or on an ad hoc basis.

In a server identification method as illustrated in FIG. 6, at block610, a plurality of memory cards are prepared by programminginformation, for example a location identifier corresponding to aparticular slot of a particular server rack, into each of the memorycards. At block 620, the memory cards are delivered or otherwiseprovided to a server system, such as a data center or a server room. Atblock 630, one or more servers are installed to the data center, witheach server inserted into a slot on a server rack. At block 640, thememory card corresponding to each slot is connected by a wired orwireless electrical connection to the server mounted in the same slot,to transmit the location identifier programmed and stored in the memorycard to the controller of the server, to facilitate identification ofthe server. Specifically, a particular memory card “corresponds” with,or is “associated” with, a particular server slot by virtue of havingbeen programmed with the location identifier that uniquely identifiesthe server slot.

In one optional embodiment, the method may continue to further include,at block 650, disconnecting the memory card from the server and at block660, removing the server from the slot. At block 670, a new server ismounted to the same slot as replacement, and at block 680, the memorycard is connected to the new server to transmit the location identifierto the new server to enable identification of the new server.

This disclosure has been presented for purposes of illustration anddescription but is not intended to be exhaustive or limiting. Manymodifications and variations will be apparent to those of ordinary skillin the art. The example embodiments were chosen and described in orderto explain principles and practical application, and to enable thosepersons having an ordinary level of skill in the art to understand thedisclosure for various embodiments with various modifications as aresuited to the particular use contemplated.

Thus, although illustrative example embodiments have been describedherein with reference to the accompanying figures, it is to beunderstood that this description is not limiting and that various otherchanges and modifications may be affected therein by one skilled in theart without departing from the scope or spirit of the disclosure.

It will be understood that the components of the embodiments, asgenerally described and illustrated in the figures herein, may bearranged and designed in a wide variety of different configurations inaddition to the described example embodiments. Thus, the following moredetailed description of the example embodiments, as represented in thefigures, is not intended to limit the scope of the embodiments, asclaimed, but is merely representative of example embodiments.

Reference throughout this specification to “one embodiment”, “anotherembodiment” or “an embodiment” (or the like) means that a particularfeature, structure, or characteristic described in connection with theembodiment is included in at least one embodiment. Thus, the appearanceof the phrases “in one embodiment” or “in an embodiment” or the like invarious places throughout this specification are not necessarily allreferring to the same embodiment.

Furthermore, the described features, structures, or characteristics maybe combined in any suitable manner in one or more embodiments. In thepresent description, numerous specific details are provided to give athorough understanding of various embodiments. One skilled in therelevant art will recognize, however, that the various embodiments canbe practiced without one or more of the specific details, or with othermethods, components, materials, etc. In other instances, some or allknown structures, materials, or operations may not be shown or describedin detail to avoid obfuscation.

As will be appreciated by one skilled in the art, embodiments may takethe form of a system, method or computer program product. Accordingly,embodiments may take the form of an entirely hardware embodiment, anentirely software embodiment (including firmware, resident software,micro-code, etc.) or an embodiment combining software and hardwareaspects that may all generally be referred to herein as a “circuit,”“module” or “system.” Furthermore, embodiments may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable storage medium(s) maybe utilized. A computer readable storage medium may be, for example, butnot limited to, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, or device, or any suitablecombination of the foregoing. More specific examples (a non-exhaustivelist) of the computer readable storage medium would include thefollowing: a portable computer diskette, a hard disk, a random accessmemory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), a portable compact discread-only memory (CD-ROM), an optical storage device, a magnetic storagedevice, or any suitable combination of the foregoing. In the context ofthis document, a computer readable storage medium may be any tangiblemedium that can contain, or store a program for use by or in connectionwith an instruction execution system, apparatus, or device. Furthermore,any program instruction or code that is embodied on such computerreadable storage media (including forms referred to as volatile memory)that is not a transitory signal are, for the avoidance of doubt,considered “non-transitory”.

Program code embodied on a computer readable storage medium may betransmitted using any appropriate medium, including but not limited towireless, wireline, optical fiber cable, RF, etc., or any suitablecombination of the foregoing. Computer program code for carrying outvarious operations may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Embodiments may be described with reference to flowchart illustrationsand/or block diagrams of methods, apparatus (systems) and computerprogram products. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, and/or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored on computerreadable storage media is not a transitory signal, such that the programinstructions can direct a computer, other programmable data processingapparatus, or other devices to function in a particular manner, and suchthat the program instructions stored in the computer readable storagemedium produce an article of manufacture.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products. In this regard, eachblock in the flowchart or block diagrams may represent a module,segment, or portion of code, which comprises one or more executableinstructions for implementing the specified logical function(s). Itshould also be noted that, in some alternative implementations, thefunctions noted in the block may occur out of the order noted in thefigures. For example, two blocks shown in succession may, in fact, beexecuted substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved. It will also be noted that each block of the block diagramsand/or flowchart illustration, and combinations of blocks in the blockdiagrams and/or flowchart illustration, can be implemented by specialpurpose hardware-based systems that perform the specified functions oracts, or combinations of special purpose hardware and computerinstructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to limit the scope of the claims.As used herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,components and/or groups, but do not preclude the presence or additionof one or more other features, integers, steps, operations, elements,components, and/or groups thereof. The terms “preferably,” “preferred,”“prefer,” “optionally,” “may,” and similar terms are used to indicatethat an item, condition or step being referred to is an optional (notrequired) feature of the embodiment.

The corresponding structures, materials, acts, and equivalents of allmeans or steps plus function elements in the claims below are intendedto include any structure, material, or act for performing the functionin combination with other claimed elements as specifically claimed.Embodiments have been presented for purposes of illustration anddescription, but it is not intended to be exhaustive or limited to theembodiments in the form disclosed. Many modifications and variationswill be apparent to those of ordinary skill in the art after readingthis disclosure. The disclosed embodiments were chosen and described asnon-limiting examples to enable others of ordinary skill in the art tounderstand these embodiments and other embodiments involvingmodifications suited to a particular implementation.

What is claimed is:
 1. A server system comprising: a server rackincluding a plurality of slots; a plurality of servers, each serverbeing positioned at a respective slot within the server rack, and eachserver including a controller and an externally-accessible interfacecoupled to the controller; and a plurality of memory cards, each memorycard having a non-volatile storage module storing a location identifierthat uniquely identifies one of the plurality of slots, and each memorycard being operable to communicate through the externally-accessibleinterface of a respective one of the servers to transmit the storedlocation identifier to the controller of the respective server.
 2. Theserver system of claim 1, wherein the interface comprises a card readercoupled to the server, wherein the card reader receives the memory cardtherein to establish communication with the memory card.
 3. The serversystem of claim 2, wherein the card reader is fixedly mounted to theserver and opens to a front side of the server for receiving the memorycard.
 4. The server system of claim 2, wherein the interface includes acable connector mounted to the server, wherein the card reader isdetachably connected to the cable connector.
 5. The server system ofclaim 1, wherein the non-volatile storage module is an electricallyerasable programmable read-only memory chip.
 6. The server system ofclaim 5, wherein the memory card further includes a wirelesscommunication module coupled to the non-volatile storage module towirelessly transmit the location identifier stored on the memory card tothe card reader.
 7. The memory card of claim 6, wherein the wirelesscommunication module includes a near-field communication chip.
 8. Theserver system of claim 1, wherein the controller derives an InternetProtocol address for the server based on the location identifier of therespective server and a server identifier associated with the server. 9.A server comprising: a management controller; and anexternally-accessible interface coupled to the management controller;wherein the interface is configured to selectively couple with a memorycard and enable the management controller to receive a locationidentifier stored by the memory card.
 10. The server of claim 9, whereinthe externally-accessible interface includes a card reader coupled tothe server, wherein the card reader receives the memory card therein andestablishes communication with the memory card.
 11. The server system ofclaim 10, wherein the card reader is fixedly secured to the server andopens to a front side of the server for receiving the memory card. 12.The server system of claim 10, wherein the interface includes a cableconnector mounted to the server, wherein the card reader is detachablyconnected to the cable connector.
 13. A memory card, comprising: astorage module storing a location identifier that identifies a locationwithin a server rack; and an interface coupled to the storage module forcommunicating with a server positioned at the identified location withinthe server rack; wherein the memory card is operative to communicate,via the interface, with the server positioned at the identified locationwithin the server rack, and wherein the server is operative to read thelocation identifier stored by the storage module.
 14. The memory card ofclaim 13, wherein the interface includes a wireless module to wirelesslytransmit the location identifier to the server.
 15. The memory card ofclaim 13, wherein the interface includes a plurality of contact padsconfigured to establish wired communication with the server.
 16. Thememory card of claim 15, wherein the plurality of contact pads supportan inter-integrated circuit bus connection with the interface.
 17. Thememory card of claim 13, wherein the interface includes a wirelessmodule configured to establish wireless communication with the server.18. The memory card of claim 17, wherein the wireless module includes anear-field communication chip.